/*
 NSStringAdditions.h
 MailDelivery
 
 Created by Dante Palacios on 26/08/09.
 Copyright 2009 Dante Palacios. All rights reserved.
 */

/*!
 @header NSStringAdditions.h
 @discussion This header contains some utility methods for the framework. Some of these methods may disappear or change their names without prior notice. For more information, contact palacios.dante\@gmail.com.
 */

#import <Foundation/Foundation.h>

/*!
 @categoryNSString(NSStringMailDeliveryEmailAdditions)
 @abstract Additions to the class NSString.
 @discussion Used to access parts of a full email address. This category is pretty useful, unfortunately the method results are constructed everytime we call them...
 */

@interface NSString(NSStringMailDeliveryEmailAdditions)

/*!
 @method displayName
 @abstract returns the full name of a fully specified email address.
 */

- (NSString *)displayName;

/*!
 @method address
 @abstract returns just the email address of a fully specified email address.
 */

- (NSString *)address;

/*!
 @method domain
 @abstract returns just the domain of an email address.
 */

- (NSString *)domain;

/*!
 @method hostName
 @abstract returns just the host of an email address.
 */

- (NSString *)hostName;

/*!
 @method userName
 @abstract userName just the user name of an email address.
 */

- (NSString *)userName;

@end

/*!
 @category NSString(NSStringMailDeliveryEncodingAdditions)
 @discussion ...
 */

@interface NSString(NSStringMailDeliveryEncodingAdditions)

/*!
 @method encodingForString:
 @abstract ...
 @param string
 ...
 */

+ (NSStringEncoding)encodingForString:(NSString *)string;

/*!
 @method mimeNameOfStringEncoding:
 @abstract ...
 @param encoding
 ...
 */

+ (NSString *)mimeNameOfStringEncoding:(NSStringEncoding)encoding;

@end

/*!
 @category NSString(NSStringMailDeliveryAdditions)
 @abstract Additions to the class NSString.
 @discussion .
 */

@interface NSString(NSStringMailDeliveryAdditions)

/*!
 @method stringWithUUID
 @abstract Used by the framework to generate message identifiers.
 */

+ (NSString *)stringWithUUID;

/*!
 @method stringByRemovingHTML
 @abstract ...
 */

- (NSString *)stringByRemovingHTML;

/*!
 @method quotedPrintableString
 @abstract ...
 */

- (NSString *)quotedPrintableString;

/*!
 @method stringByTrimmingWhiteSpaces
 @abstract ...
 */

- (NSString *)stringByTrimmingWhiteSpaces;

/*!
 @method stringWithCRLFLineBreaks
 @abstract ...
 */

- (NSString *)stringWithCRLFLineBreaks;

/*!
 @method isCaseInsensitiveEqualToString:
 @abstract ...
 */

- (BOOL)isCaseInsensitiveEqualToString:(NSString *)string;

/*!
 @method containsString:
 @abstract ...
 */

- (BOOL)containsString:(NSString *)string;

/*!
 @method encoding:
 @abstract ...
 */

- (NSStringEncoding)encoding;

@end